﻿-- Phiếu mượn có các thông tin sau: MA_SO_SV_CB_GV (MSSV nếu là SV), Tên sách, Tác giả. (có 5 dòng tên sách, tác giả nếu sinh viên mượn 5 cuốn)

-- 1) Khi sinh viên đến mượn sách, thủ thư nhập MSSV vào để kiểm tra sinh viên này có đã (đang) mượn sách hay chưa. Truy vấn sau được thực hiện.
Đầu vào: @MA_SO_SV_CB_GV

-- Tìm mã độc giả tương ứng với sinh viên này
DECLARE @MA_DOC_GIA INT
SET @MA_DOC_GIA = 0

SELECT @MA_DOC_GIA
FROM DOC_GIA
WHERE MA_SO_SV_CB_GV = @MA_SO_SV_CB_GV

IF @MA_DOC_GIA = 0)
	-- Thông báo cho thủ thư biết sinh viên này chưa phải là độc giả
ELSE
BEGIN
	IF EXISTS(SELECT 1
			  FROM MUON_SACH
			  WHERE MA_DOC_GIA = @MA_DOC_GIA AND DA_TRA_SACH = 0)
		-- Thông báo cho thủ thư biết sinh viên này chưa trả hết sách
	ELSE
		-- Cho nó mượn
END

-- 2) Khi sinh viên này trả sách:
Thực hiện kiểm tra lại:
SELECT @BOOK_COUNT = COUNT(*)
FROM MUON
WHERE MA_DOC_GIA = @MA_DOC_GIA

IF(@BOOK_COUNT > 5)
	-- Bắt nó trả cả những cuốn trước
	
-- 1) Kiểm tra từng mã sách sinh viên trả có phải là những cuốn đã mượn không, việc kiểm tra này phải kèm theo kiểm tra bằng mắt dấu đóng của thư viện có trong sách không.

-- 2) Kiểm tra có cuốn nào trong thư viện là cuốn đuợc trả không

-- a) Lấy MA_SACH tương ứng với tên sách được trả
SELECT @MA_SACH = MA_SACH
FROM SACH
WHERE TEN_SACH = @TEN_SACH

-- b) Lấy MA_TAC_GIA tương ứng với tên tác giả của cuốn sách được trả
SELECT @MA_TAC_GIA = MA_TAC_GIA
FROM TAC_GIA
WHERE TEN_TAC_GIA = @TEN_TAC_GIA

-- c) Kiểm tra cuốn sách được trả có phải của thư viên không
IF EXISTS(SELECT 1
		  FROM BIEN_SOAN
		  WHERE MA_SACH = @MA_SACH AND MA_TAC_GIA = @MA_TAC_GIA)
	-- Đúng là của thư viện
	-- Đánh dấu là nó đã được trả
	UPDATE MUON_SACH SET DA_DUOC_TRA = 1 WHERE MA_DOC_GIA = @MA_DOC_GIA AND MA_SACH = @MA_SACH
ELSE
	-- Không phải của thư viện, thôi nhận luôn =)







